#ifndef __DS18B20_H
#define __DS18B20_H

#ifdef __cplusplus
extern "C"
{
#endif

#include "main.h"

#define CARRIED_OUT_SIMULTANEOUSLY  1
#define DIRECT_OPERATION_REGISTER   1

    void PinMode_Output(GPIO_TypeDef *port, uint16_t pin);
    void PinMode_Input(GPIO_TypeDef *port, uint16_t pin);
    void DS18B20_Init(const ds18b20_config_t *config);
#if CARRIED_OUT_SIMULTANEOUSLY
    // void DS18B20_ReadTempe(void);
    void DS18B20_GetStart(void);
    void DS18B20_GetTempe(void);
    void DS18B20_Run(void);
#else
typedef struct
{
    GPIO_TypeDef *GPIOx;
    uint16_t pin;
    uint16_t Temp;
} ds18b20_config_t;
/**
 * @brief 获取对应传感器的温度
 *
 * @param object PA模块ID
 * @return float
 */
float DS18B20_ReadTempe(uint8_t object);
#endif

#ifdef __cplusplus
}
#endif

#endif
